
Page({

  /**
   * 页面的初始数据
   */
  data: {
    year_obj:{},
    weeks:["星期天","星期一","星期二","星期三","星期四","星期五","星期六"],
    today:0,
    isMulPeople:"false"
  },

/*** 生命周期函数--监听页面加载 */

// 判断选择的时间是否小于目前的时间
checkDate(today){
    // 当前的时间大于选择的时间。就提示信息
    let now_year = new Date().getFullYear()
    let now_month = new Date().getMonth()+1
    let now_day = new Date().getDate()
    let choose_year = this.data.year_obj.year
    let choose_month = this.data.year_obj.month+1
    let choose_day = today

    if((choose_year<now_year)|(choose_year==now_year&choose_month<now_month)|(choose_year==now_year&choose_month==now_month&choose_day<now_day)){    
    return true
    }
 
    return false

},

/**上一个按钮事件 */
lastMonthBtn(e){
    // 获取目前的年月
    let {year,month,day,xiqi} = this.data.year_obj
    month = month-1
    if(month<1){month=12;year=year-1}
    const t = new Date(year,month)
     // 重新更新下面的日期号
    this.setData({
        year_obj:{year:year,month:month,day:day,xiqi:t.getDay()},
        lastMonthArray:this.getLastDaysArray(year,month),
        currentMonthArray:this.getCurrentDaysArray(year,month),
        nextMonthArray:this.getNextDaysArray(year,month)
    })
},

// 点击某一天日期触发函数
clickDay(e){
    // 获取点击的日期
    const {today} = e.currentTarget.dataset
    // 是否选择的时间小于当前的时间
    const flag = this.checkDate(today)
    // true就提示信息 并return
    if(flag){
        wx.showToast({
            title: '您的日期不能小于今天',
            icon:"none"
          })
          return
    }
    // 把选择的日期渲染到页面
    this.setData({today})
    // 并且更改日期
    const tmp = this.data.year_obj
    tmp.xiqi =  new Date(this.data.year_obj.year,this.data.year_obj.month,today).getDay()
    this.setData({
        year_obj:tmp
    })
    // 修改点击的样式
    this.setData({
        key:parseInt(e.currentTarget.dataset.today)-1
    })
    // console.log(this.data.year_obj.year,this.data.today);
    wx.navigateTo({
        url: '/pages/add/add?year='+this.data.year_obj.year+'&month='+(this.data.year_obj.month)+'&day='+this.data.today
    })
  
},

// 下一个按钮事件
nextMonthBtn(){
        // 获取目前的年月
        let {year,month,day,xiqi} = this.data.year_obj
        month = month+1
        if(month>12){month=1;year=year+1}
        const t = new Date(year,month)
        // console.log(t.getDay());
        console.log({year:year,month:month,day:day,xiqi:t.getDay()});
         // 重新更新下面的日期号
        this.setData({
            year_obj:{year:year,month:month,day:day,xiqi:t.getDay()},
            lastMonthArray:this.getLastDaysArray(year,month),
            currentMonthArray:this.getCurrentDaysArray(year,month),
            nextMonthArray:this.getNextDaysArray(year,month)
        })
},


/*获取目前的时间*/   
  getDateFun(e){
    const time = new Date()
    const y = time.getFullYear()
    const m = time.getMonth()+1
    const d = time.getDate()
    const w = time.getDay()
    console.log(time.getMonth(),"索引值",{year:y,month:m,day:d,xiqi:w});
    this.setData({year_obj:{year:y,month:m,day:d,xiqi:w}})
  },

// 获取上一个月最后一天
getlastMonthDays(year,month){
    return new Date(year,month-1,0).getDate()
},

// 获取某个月1号星期几
getMonthWeek(year,month){
   return new Date(year,month,1).getDay()
},

// 获取每个月有多少天
getCurrentMonthDays(year,month){
    console.log(new Date(2023,3,0).getDate(),"每个月多少天");
    return new Date(year,month,0).getDate()
},

// 获取上个月的号的数组
getLastDaysArray(year,month){
    const lastArray = []
    let num = this.getMonthWeek(year,month)
    let count = this.getlastMonthDays(year,month)
    for(let i=0;i<num;i++){
        lastArray.push(count--)
    }
    return lastArray.reverse()
},
// 获取下一个月的号的数组
getNextDaysArray(year,month){
    const nextArray = []
    let nowNum = this.getCurrentMonthDays(year,month)
    let weekLast = this.getMonthWeek(year,month)-1;
    let forNum = 42-nowNum-weekLast
    for(let i=0;i<forNum-1;i++){
        nextArray.push(i+1)
    }
   return nextArray
},
// 获取本月的天数数组
getCurrentDaysArray(year,month){
    const currentArray = []
    for(let i=0;i<this.getCurrentMonthDays(year,month);i++){
        currentArray.push(i+1)
    }
    return currentArray
},




  onLoad: function (options) {
    // 获取时间
    this.getDateFun()
    this.setData({
        lastMonthArray:this.getLastDaysArray(this.data.year_obj.year,this.data.year_obj.month),
        currentMonthArray:this.getCurrentDaysArray(this.data.year_obj.year,this.data.year_obj.month),
        nextMonthArray:this.getNextDaysArray(this.data.year_obj.year,this.data.year_obj.month)
    })
    
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
    
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
    
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
    
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    //   获取今天的日期
    this.getDateFun()
    // 下拉刷新关闭
    wx.stopPullDownRefresh()
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
    
  }
})